package Day019_Junit单元测试_NIO.demo3_Buffer类_缓冲区;

/**
 * @author zhangyan
 * @date 2020/5/12 10:17
 */
/*
    Buffer概述:
            Buffer是一个对象，它对某种基本类型的数组进行了封装。NIO开始使用的Channel(通道)就是通过 Buffer 来读写数据的。

    在NIO中，所有的数据都是用Buffer处理的，它是NIO读写数据的中转池。
    Buffer实质上是一个数组，通常是一个字节数据，但也可以是其他类型的数组。
    但一个缓冲区不仅仅是一个数组，重要的是它提供了对数据的结构化访问，而且还可以跟踪系统的读写进程。

    使用 Buffer 读写数据一般遵循以下四个步骤：
    1.写入数据到 Buffer；
    2.调用 flip() 方法；
        System.out.println(result);
     }
    }
    3.从 Buffer 中读取数据；
    4.调用 clear() 方法或者 compact() 方法

    当向 Buffer 写入数据时，Buffer 会记录下写了多少数据。一旦要读取数据，需要通过 flip() 方法将 Buffer 从写模式切换到读模式
    在读模式下，可以读取之前写入到 Buffer 的所有数据。
    一旦读完了所有的数据，就需要清空缓冲区，让它可以再次被写入。有两种方式能清空缓冲区：调用 clear() 或compact() 方法
    clear() 方法会清空整个缓冲区。compact() 方法只会清除已经读过的数据,任何未读的数据都被移到缓冲区的起始处，新写入的数据将放到缓冲区未读数据的后面

    Buffer主要有如下几种：
                ByteBuffer
                CharBuffer
                DoubleBuffer
                FloatBuffer
                IntBuffer
                LongBuffer
                ShortBuffer
 */
public class Test1_Buffer类概述 {
    public static void main(String[] args) {

    }
}
